Methods and systems for testing web applications

ABSTRACT

A system and method for utilizing metadata of a client computer in form of transactions and/or software operations (e.g., actions) in an enterprise system hosted by a host entity, such as in a cloud environment for testing the software operations is disclosed. The host entity stores metadata (e.g., response time, delay, processing time, usage) about the transactions in a database for the client computer system&#39;s actions. The host entity then uses the stored metadata to automatically generate a test script based on actual user interactions with the software operations of the enterprise resource planning system for specific data range and environment in order to test functionality of a plurality of software operations in the enterprise resource planning systems being operated by users of the client computers.

CROSS-REFERENCE TO RELATED PATENT APPLICATIONS

This patent application is a Continuation of U.S. Utility patentapplication Ser. No. 15/940,177 filed 29 Mar. 2018, which claims abenefit of priority to U.S. Provisional Patent Application 62/479,911filed 31 Mar. 2017, each of which is incorporated by reference hereinfor all purposes.

TECHNICAL FIELD

This application relates generally to systems, apparatus, and methodsfor software and web application testing, and more particularly relatesto testing tools for enterprise resource planning (ERP) softwaresystems.

BACKGROUND

ERP software systems play a crucial role in the operation of many modernbusinesses and include a wide variety of complex software systems. SuchERP systems may comprise hundreds or thousands of modules that areinterrelated. Implementing the complex software system often requirescustom programming of numerous software modules to combine software fromvendors with the existing systems of a corporation or other entity. Somecompanies may run, manage, and service their own ERP software systems,such as those from Oracle® or Infor Lawson® systems. Other companies mayoutsource the services to a third party, who hosts the hardware andsoftware and manages these ERP systems for the companies.

A third party may test a software application in the ERP system toidentify software bugs, glitches, and issues within the softwareapplication. The test may be performed after an application build orupgrade, and the test may identify features or functions that are notperforming according to a desired specification. Conventional testingtechniques, such as stress tests, may be employed to test an applicationin an ERP system by simulating situations during which multiple usersare simultaneously utilizing the ERP system software. The stress testsprovide analytical information regarding the stability of theapplication being tested. Therefore, it is highly desirable for thestress tests to be performed on applications that are generally utilizedby a plurality of users (e.g., databases, webservers, etc.). If thoseapplications are not subjected to the stress tests, then they may failat a crucial point, e.g., if too many users are attempting to use theapplication, then a failure may result in irreparable downtime for theapplication. In order to perform the stress test, an administrator mayinterview users of the application to ascertain common usage and thenmanually generate test scripts based upon the usage conveyed by thoseusers and assumptions based on those interviews. However, this processoften results in a test script that does not accurately capture userinteractions, as users may overemphasize or deem phasize certainactions. Additionally, this manual process of generating test scriptscan be arduous and slow, plaguing project management teams with everyapplication patch, upgrade, or migration.

SUMMARY

Disclosed herein are systems and methods capable of addressing theabove-described shortcomings and may also provide any number ofadditional or alternative benefits and advantages. As described herein,systems and methods comprise an enterprise resource planning testingtool to replicate actual user interactions within the enterpriseresource planning system and apply a test script on a target environmentby removing guesswork of which applications and functionality are beingutilized. With a one-click test script generator, the systems andmethods can identify complete application functionality utilized in anysource production environment, thereby eliminating a lengthy discoveryphase of determining critical applications, a slow process of manuallycreating a test scripts, and recording of hypothetical use cases,consequently making planning, identifying, and test script creationeasier and more efficient.

Systems, apparatuses, methods, and computer program products of thepresent disclosure perform testing of web applications by utilizingdatasets (such as field level data records) collected by a host entityof a plurality of web applications/software operations in enterpriseresource planning systems being operated by a plurality of clientcompanies. When a web application is integrated with a host entity andkey field data collection is enabled, a host entity collects the fieldlevel data executed in the web application as well as key field valuesfor one or more forms and/or records of employees. The systems andmethods are then able to use the field level data collected by the hostentity and automatically generate a test script based on actual userinteractions with the enterprise resource planning system. The automaticgeneration of a test script transforms the functional and stress testingprocess by replacing a labor intensive validation of applicationfunctionality with automated, data-backed test scripts that save timeand consume fewer resources for the host entity and client companieswhen making a change to the web application environment.

In one embodiment, a system and method utilizes community informationthat a client company performs in form of transactions and/or softwareoperations (e.g., actions) in an enterprise system hosted by a hostentity, such as in a cloud environment. The host entity stores datasets,which may include field level data (such as personal identifiable dataof employees operating on modules of client computer system softwareoperations and/or web applications) as well as metadata (e.g., responsetime, delay, processing time, usage) about the transactions in adatabase for the client company's actions and the actions of otherclient companies. The host entity then uses the stored datasetscomprising the field level data to automatically generate a test scriptbased on actual user interactions with the ERP system for specific datarange and environment in order to test functionality of a plurality ofsoftware operations in the ERP systems being operated by users of aplurality of client companies. In some instances, the host entity mayuse the field level data as well the metadata to automatically generatea test script based on actual user interactions with the ERP system forspecific data range and environment in order to test functionality of aplurality of software operations in the ERP systems being operated byusers of a plurality of client companies.

A host entity's system comprises at least two parts: a web interface anda testing agent. In some embodiments, the web interface is used by usersof a host entity to generate a test script, by selecting an environmentand date range as source environment using the web interface for thetest script. In addition to generating the test script, users of a hostentity can view results from previous test runs and modify field valuesfor subsequent runs on the web interface. In some embodiments, a testserver then generates transactional requests by using information fromthe test script and form definitions. Once the test server generate thetransactional requests, the test server performs a functional test bysubmitting the transactional request to a target system and sends theresponse for each request back to a host entity. In some embodiments, atesting agent replicates the stress and interaction on each targetsystem from a source environment, enabling a full rehearsal by replayingactual user activities and providing an accurate data comparison toverify and validate performance of all necessary applicationfunctionality. For example, a testing agent is capable of utilizingJMeter, a stress testing tool, to simulate stress on the target clientsystem by increasing a number of transactional requests within a certaintime period. With the functional and stress testing capability of a hostentity as described herein, the host entity is able to test bothapplication functionalities as well as ensuring the infrastructure isconfigured to handle the stress during the most critical processingperiod.

In one embodiment, a computer-implemented method may include receiving,by a server over a communication network from a client computer system,a first transmission comprising datasets corresponding to at least aplurality of software operations of a first application in an enterpriseresource planning system being operated by the client computer systemwhere each of the software operations is linked to at least one dataset.The server is further configured to categorize data relating to eachsoftware operation to one of a plurality of categories. Thecomputer-implemented method may further include generating, by a server,a test script using one or more data fields selected for a secondapplication from the datasets for a defined time-period where one ormore instructions are defined in the test script and the one or moreinstructions are loaded into a computer-readable memory. Thecomputer-implemented method may further include executing, by a server,the test script to test the second application according to theinstructions defined in the test script. The executing of the testscript comprises retrieving, by the server, the plurality of softwareoperations of the first application during the defined time-period forthe one or more selected data fields, and performing, by the server, theplurality of software operations of the first application during thedefined time-period for the one or more selected data fields. Thecomputer-implemented method may further include transmitting, by theserver over the communication network to the client computer system, asecond transmission comprising information for display of testperformance of the plurality of the software operations of the secondapplication based on the datasets corresponding to the first applicationin the enterprise resource planning system.

In another embodiment, a system may include a client computer system anda server coupled to each other via a communication network. The serveris configured to receive over the communication network from the clientcomputer system, a first transmission comprising datasets correspondingto at least a plurality of software operations of a first application inan enterprise resource planning system being operated by the clientcomputer system where each of the software operations is linked to atleast one dataset. The server is further configured to categorize datarelating to each software operation to one of a plurality of categories.The server is further configured to generate a test script using one ormore data fields selected for a second application from the datasets fora defined time-period where one or more instructions are defined in thetest script and the one or more instructions are loaded into acomputer-readable memory. The server is further configured to executethe test script to test the second application according to theinstructions defined in the test script. The executing of the testscript by the server comprises retrieving the plurality of softwareoperations of the first application during the defined time-period forthe one or more selected data fields and performing the plurality ofsoftware operations of the first application during the definedtime-period for the one or more selected data fields. The server isfurther configured to transmit over the communication network to theclient computer system, a second transmission comprising information fordisplay of test performance of the plurality of the software operationsof the second application based on the datasets corresponding to thefirst application in the enterprise resource planning system.

Additional features and advantages of an embodiment will be set forth inthe description which follows, and in part will be apparent from thedescription. The objectives and other advantages of the invention willbe realized and attained by the structure particularly pointed out inthe exemplary embodiments in the written description and claims hereofas well as the appended drawings.

It is to be understood that both the foregoing general description andthe following detailed description are exemplary and explanatory and areintended to provide further explanation of the invention as claimed.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings constitute a part of this specification andillustrate an embodiment of the invention and together with thespecification, explain the invention.

FIG. 1 shows components of a system for testing web applications,according to an exemplary embodiment.

FIG. 2 shows execution of a method for testing web applications,according to an exemplary embodiment.

FIG. 3 shows a graphical user interface showing a dashboard, accordingto an exemplary embodiment.

FIG. 4 shows a graphical user interface showing a dashboard, accordingto an exemplary embodiment.

FIG. 5 shows a graphical user interface for displaying test results,according to an exemplary embodiment.

FIG. 6 shows a graphical user interface showing a dashboard according toan exemplary embodiment.

FIG. 7 shows a graphical user interface showing a heat map according toan exemplary embodiment.

FIG. 8 shows a graphical user interface for comparing communityinformation according to an exemplary embodiment.

FIG. 9 shows a graphical user interface for displaying performance overtime according to an exemplary embodiment.

FIG. 10 shows a graphical user interface displaying open requestsaccording to an exemplary embodiment.

FIG. 11 shows a graphical user interface for displaying outagesaccording to an exemplary embodiment.

FIG. 12 shows a graphical user interface displaying one or more productlines for a client company according to an exemplary embodiment.

DETAILED DESCRIPTION

Reference will now be made to the illustrative embodiments illustratedin the drawings, and specific language will be used here to describe thesame. It will nevertheless be understood that no limitation of the scopeof the claims or this disclosure is thereby intended. Alterations andfurther modifications of the inventive features illustrated herein, andadditional applications of the principles of the subject matterillustrated herein, which would occur to one skilled in the relevant artand having possession of this disclosure, are to be considered withinthe scope of the subject matter disclosed herein.

The present disclosure is here described in detail with reference toembodiments illustrated in the drawings, which form a part here. Otherembodiments may be used and/or other changes may be made withoutdeparting from the spirit or scope of the present disclosure. Theillustrative embodiments described in the detailed description are notmeant to be limiting of the subject matter presented here.

When performing a stress test for a new application, an enhanced orupdated application, operating system, or computer system, the systemsand methods herein are able to capture datasets comprising field leveldata and metadata of each transaction with an enterprise resourceplanning system in order to generate a script that is based upon theactual transactions rather than assumptions of use. The automaticgeneration of a test script transforms the functional and stress testingprocess by replacing a labor intensive validation of applicationfunctionality with automated, data-backed test scripts that save timeand consume fewer resources for the host entity and client companieswhen making a change to the web application environment. As disclosedherein, systems and methods can use the datasets of a client computer inform of field level data, transactions, and/or software operations(e.g., actions) in an enterprise resource planning system hosted by ahost entity, such as in a cloud environment for testing the softwareoperations. The host entity stores datasets, which may further includethe field level data (comprising the personal identifiable of employeesof client computer systems operating on one or more modules of theclient computer system software operations and/or web applications) aswell as the metadata (e.g., response time, delay, processing time,usage) about the transactions in a database for the client computersystem's actions. The host entity then uses the stored datasets toautomatically generate a test script based on actual user interactionswith the software operations of the enterprise resource planning systemfor specific data range and environment in order to test functionalityof a plurality of software operations in the enterprise resourceplanning systems being operated by users of the client computers.

FIG. 1 shows components of a system 100 for testing web applications,according to an exemplary embodiment. The system 100 may include a hostentity 102, a client computer system 104, and a client computer system106. The host entity 102, the client computer system 104, and the clientcomputer system 106 and their components are connected to each otherthrough a network 108. The examples of the network 108 may include, butare not limited to, private or public LAN, WLAN, MAN, WAN, and theInternet. The network 108 may include both wired and wirelesscommunications according to one or more standards and/or via one or moretransport mediums. The communication over the network 108 may beperformed in accordance with various communication protocols such asTransmission Control Protocol and Internet Protocol (TCP/IP), UserDatagram Protocol (UDP), and IEEE communication protocols. In oneexample, the network 108 may include wireless communications accordingto Bluetooth specification sets, or another standard or proprietarywireless communication protocol. In another example, the network 108 mayalso include communications over a cellular network, including, e.g. aGSM (Global System for Mobile Communications), CDMA (Code DivisionMultiple Access), EDGE (Enhanced Data for Global Evolution) network.

A host entity 102 can host an enterprise system 110 for various clientcompanies, collectively referred to as a community. The host entity 102can host the enterprise system 110 on a cloud platform. The host entity102 may provide service level agreements (SLAs) that the client computersystem 104, 106 cannot obtain themselves. The host entity 102 canprovide real-time information on a dashboard regarding the operation ofthe enterprise system 110, including a number of tickets, response time,who is logging on, etc. The client computer system 104, 106 may use theenterprise system 110 to perform a plurality of transactions and/orsoftware operations, where each transaction and/or software operation isperformed by a client computer system 104, 106 representative usinghardware and/or software hosted by the host entity 102. Each transactionand/or software operation (e.g., adding an invoice, submitting a timerecord, submitting a batch job) is not intended to be limited to afinancial transaction and/or software operation, but rather a measurableor discrete task, project, and/or action in the enterprise system 110.Because the host entity 102 collects data from the client companies 104,106 using the enterprise system 110, the host entity 102 can alsoprovide information to the client computer system 104, 106 about theperformance of the client computer system's web applications. Forexample, the host entity 102 may perform one or more test regarding thesoftware operations and/or the web applications of the client companies104, 106 and provide feedback to the client companies 104, 106 on testresults. The client computer system 104, 106 may then adjust theirprocesses or their software based upon the test result feedback providedby the host entity 102.

A host entity 102 hosts an enterprise system 110 for a plurality ofclient companies 104, 106. The enterprise system 110 may be anycomputing device comprising a processor and non-transitorymachine-readable storage medium and capable of performing the varioustasks and processes described herein during execution. Non-limitingexamples of the enterprise system 110 may include a desktop computer, aserver computer, a laptop computer, a tablet computer, and the like. Forease of explanation, FIG. 1 shows a single server functioning as theenterprise system 110, but it is intended that the enterprise system 110may include one or more servers, databases, and/or cloud environmentsused to host the system on behalf of the client computer system 104,106.

The host entity 102 may have a dashboard server 112 communicativelycoupled to the enterprise system 110 for harvesting data and presentingthe data to a communication server for display to a client computersystem 104, 106. In some embodiments, the dashboard server 112 may becommunicatively coupled to the enterprise system 110 for harvesting dataand presenting the data to a test server 126 that is configured toperform one or more tests using the data in order to test functionalityof a plurality of software operations and web applications beingoperated by users of client computer system 104, 106.

Non-limiting examples of the dashboard server 112 may include a desktopcomputer, a server computer, a laptop computer, a tablet computer, andthe like. In some embodiments, the dashboard server 112 may include aWeb interface that runs Web pages from an Ethernet board and includes anHTTP protocol interpreter, a PLC back plane driver, a TCP/IP stack, andan Ethernet board kernel. The Web interface provides access to the hostentity 102. Using this interface of the dashboard server 112, anadministrator of the host entity 102 may retrieve all pertinent dataregarding the operation of the client computer system 104, 106 toperform one or more tests using the data in order to test functionalityof a plurality of software operations and web applications beingoperated by users of client computer system 104, 106.

Although one server is shown for the dashboard server 112, it isintended that the functionality may be performed by one or more serversand databases. The dashboard server 112 may include a plurality ofmonitoring tools or applications to assist in managing a client computersystem's information. The dashboard server 112 may also becommunicatively coupled to a database 114. The database 114 can storerecords having datasets gathered by the dashboard server 112 and/orother components of the host entity 102. In some embodiments, a testserver 126 may be communicatively coupled to the database 114 forharvesting data to perform one or more tests in order to testfunctionality of a plurality of software operations and web applicationsbeing operated by users of the client computer system 104, 106.

A database 114 stores datasets comprising field level data. In someembodiments, the field level data is obtained from all operational andpersonal identifiable data associated with the client computer system104, 106. In some embodiments, the field level data is obtained fromdata associated with the client computer system 104, 106, which mayinclude metadata. The metadata may include information about the clientcomputer system 104, 106 transactions and/or software operations and thedata about the underlying transaction and/or software operation. Themetadata may include data about one or more employees if the clientcomputer system 104, 106, data about one or more software and webapplications of the client computer system 104, 106, and one or moreforms that are being accessed by users and/or employees of the clientcomputer system 104, 106. In one example, the database 114 may store oneor more forms corresponding to employee records containing data fieldssuch as a first name, a last name, an employee ID, a start date, a jobtitle and so on. In another example, the database 114 may store one ormore forms corresponding to benefit module (BN), human resources module(HR), personnel actions module (PA), payroll module (PR) accessed byusers and/or employees of the client computer system 104, 106. Duringoperation, a request may be made to the database 114 to obtain recordscontaining forms and employee details from the database 114.

In some embodiments, the database 114 stores the datasets, which mayinclude data about underlying transaction and/or software operation. Forexample, a client computer system in a healthcare industry, such as ahospital, may order a suture tray with all of the tools and items neededto provide stitches to a patient. The database 114 may further storeinformation about how many suture trays are ordered for the sake ofcomparing the ordering trends with other hospitals. The database 114 mayfurther store information about a particular patient that neededstitches or the reason the stitches were applied. In the exemplaryembodiment, the database 114 may store any sensitive information.

The database 114 may be non-transitory machine-readable storage mediafor storing datasets records as discussed above. The term “computerreadable medium” or “computer usable medium” as used herein refers toany medium that participates in providing instructions to a processorfor execution. Such a medium may take many forms, including but notlimited to, non-volatile media, volatile media, and transmission media.Non-volatile media includes, for example, optical or magnetic disks,such as disk drive. Volatile media includes dynamic memory, such assystem memory. Common forms of computer readable media includes, forexample, floppy disk, flexible disk, hard disk, magnetic tape, any othermagnetic medium, CD-ROM, any other optical medium, punch cards, papertape, any other physical medium with patterns of holes, RAM, PROM,EPROM, FLASH-EPROM, any other memory chip or cartridge, or any othermedium from which a computer can read.

The host entity 102 also has a communication server 116 (e.g., a webserver) to transmit data to and from the client companies 104, 106.Non-limiting examples of the communication server 116 may include adesktop computer, a server computer, a laptop computer, a tabletcomputer, and the like. The host entity's communication server 116 maypresent a webpage to a communication server 118, 120 (e.g., web server)of the client computer system/device 104, 106. The host entity'scommunication server 116 may populate the webpage with data obtainedfrom a communicatively coupled dashboard server 112, and the hostentity's communication server 116 may transmit the webpage for displayat the client computer system 104, 106.

Although two client companies 104, 106 are shown, it is intended thatthe host entity 102 may host a community of any number of clientcompanies 104, 106. Also, although the exemplary embodiment recites theuse of an enterprise system 110, it is intended that any platform orsoftware that is consistent with the scope of this disclosure may beused. In this exemplary embodiment, each client computer system 104, 106may have an enterprise resource planning (ERP) server 122, 124. Althoughone ERP server 122, 124 is shown for each client computer system/device104, 106, it is intended that the functionality may be performed by oneor more servers and databases. The ERP server 122, 124 may becommunicatively coupled to the communication server 118, 120 of theclient computer system/device 104, 106 to transmit data to and from thecommunication server 116 of the host entity 102, which is coupled to thehost entity's enterprise system 110. These servers may communicate overa network 108, such as the internet.

The client computer system 104, 106 has a workstation 126, 128 and/orother computing/computer device (e.g., desktop computer, laptopcomputer, tablet computer, mobile device, cellular phone, smartphone,personal data assistant) that can communicate through the clientcomputer system's communication server 118, 120 with the host entity102. The host entity 102 can generate a webpage using the dashboardserver 112 and data from the database 114 to provide the communityinformation to the workstation 126, 128 at the client entity. Thisinformation is generated by the host entity 102 and configured fordisplay on a graphical user interface (e.g., web browser) of theworkstation 126, 128 of the client computer system 104, 106.

During operation, a dashboard server 112 may communicate with a database114 storing the datasets comprising the field level data. The fieldlevel data may include personal identifying data of employees of theclient computer system 104, 106 operating on one or more modules of theclient computer system software operations and/or web applications. Thedatasets may further include metadata, which may include one or moreemployee records and forms accessed by employees of the client computersystem 104, 106 on one or more modules of the client computer systemsoftware operations and/or web applications. The dash board server 112may send a request to the database 114 to obtain the datasets comprisingdata corresponding to one or more employee records and form details. Insome embodiments, the dash board server 112 may send a specific requestto the database 114 to obtain one or more field values from a pluralityof field values in the one or more employee records and forms. The dashboard server 112 may select the one or more field values from aplurality of field values in the one or more employee records and formsbased one or more set of rules. The one or more set of rules may bedefined based on form definition. For example, in a Google email form,there may be two fields: a user name field and a password field. Thedash board server 112 will determine definition for the log-in form forGoogle email stored in a database 114 and based on the definition forthe login form for Google email, the dash board server 112 will selectthe one or more field values from the two fields of Google email form.The form definition may be defined by administrators of the clientcomputer system 104, 106 and/or the host entity 102.

In some embodiments, the dash board server 112 then reconstruct adataset (for example, a first dataset) required to simulate clientcomputer system employee interaction with the web applications of theERP server 122, 124 of the client computer system 104, 106 based on theone or more field values in the one or more employee records and formsaccessed by employees. The dash board server 112 will then generate atest script based on the dataset and/or the metadata reconstructedand/or obtained from the database 114. The test script may be aprogrammed code that automates a test case generated by reconstructingone or more fields for a selected dataset within the metadata by callingsubroutines or application programming interfaces (APIs) exported bytest automation frameworks (TAF). The TAF may provide the backendsupport for executing the test script, including the infrastructure forcreating processes and tracking and controlling remote test setups. Inan example, a test case may include complex logic in which multipleprocesses, tools, and ERP systems are utilized by the users of theclient computer system 104, 106. The test case may include parallel andsequential processes, with each process performing one or more testingfunctions.

In some embodiments, the dash board server 112 will select aproduct/application software category for which a test has to beperformed. In addition to the product/application category, in someembodiments, the dash board server 112 will also select an environmentand date range as source environment for the selectedproduct/application software category in order to obtain a selecteddataset for a selected environment with a defined time-period forgeneration of the test script for testing the selectedproduct/application software category. For example, the ERP server 122,124 may have multiple environments such as a production environmentconfigured to do production request and a task environment configured todo other requests. In another example, a single softwareproduct/application (such as People Soft) that has to be tested may beoperated by the client computer system 104, 106 in different countries.Each country will then represent a different environment for thesoftware application. In such a case, the dash board server 112 afterselecting People Soft as a product/application category, the dash boardserver 112 will then select, for example, USA zone as an environment forthe selected product/application category and any date range for theselected product/application category for generation of the test script.

A test server 126 communicatively coupled to the dash board server 112may then receive the test script from the dash board server 112. In someembodiments, the dash board server 112 may automatically transmit thetest script to the test server 126 upon generating the test script. Insome embodiments, the dash board server 112 may transmit the test scriptto the test server 126 upon receiving a request from the test server126. In some embodiments, the dash board server 112 may transmit thetest script to the test server 126 upon receiving a request from anadministrator of the host entity 126. The test server 126 then generatestransactional requests by using data from the test script and/or formdefinitions. Upon the generation of the transactional requests, the testserver 126 performs a functional test to test web application of theclient computer system 104, 106 by submitting the transactionalrequests.

In some embodiments, the test server 126 is also capable of utilizingperformance test tools or systems (or software) enabling variousscenario of using a web application of the client computer system 104,106 to be simulated to deduce therefrom statistical data reflecting itsperformance. Among these tools, the JMeter tool can be mentioned, asoftware produced by the Foundation Apache. The JMeter tool enablesperformance tests of ERP computing web applications of the clientcomputer system 104, 106 to be performed according to differentprotocols such as HTTP/HTTPS, SMTP, etc. To do so, JMeter tool simulatesthe load of a plurality of users of a target ERP computing applicationof the client computer system 104, 106, and subsequently measures anumber of performance metrics describing the behavior of the ERPcomputing web application responsive to this load, especially responsetimes representative of the client computer system employee experience.Upon the completion of the test, the test server 126 may then presenttest results over the communication network 108 to the client computersystem 104.

In alternative embodiments of the present disclosure, the host entity102 can obtain information from a client computer system 104, 106 toprovide insight. The system 100 can be configured so that the ERP server122, 124 can extract information and provide it to the dashboard server112 so that the host entity 102 can provide information about trends,efficiencies, and performance.

By gathering transactional datasets comprising at least metadata from acommunity of enterprise system 110 client companies 104, 106, the system100 can provide comparative analysis of system 100 and user efficiency.Furthermore, by gathering metadata about the community's systemsthemselves (e.g., versions, patches), it is possible to provideadditional comparative analysis for system and user performance acrossdifferent versions. Further, by adding additional metadata about systemchanges and system events (i.e., monitors), additional comparativeanalysis can be provided.

Examples of how a host entity 102 can use datasets to compare the clientcomputer system 104, 106 with others in the community include, but arenot limited to, an ability to: (1) analyze on-line transactional usagefor patterns/comparisons by system/transaction/function; (2) analyzebatch system usage for patterns/comparisons bysystem/transaction/function; (3) analyze system performance metrics forpatterns/comparisons by system/transaction/function; (4) analyze systemlevel (version/upgrade/cyclical/patch) for patterns/comparisons bysystem/transaction/function; (5) analyze ad-hoc query usage/efficiency(and impact on overall system performance); (6) analyze user logins forpatterns/comparisons by system/transaction/function; (7) analyze usersession duration/habits for patterns/comparisons bysystem/transaction/function; (8) analyze user efficiencies forpatterns/comparisons by system/transaction/function; (9) identifyanomalous user behavior (i.e., users logging in from home @ 2:30 am);and (10) identify anomalous transaction and/or software operationbehavior (i.e., daemon process that updates Accounts Payable Vendorterms before scheduled check runs and changes back after check run).

In one embodiment, an internal control system can harvest metadata aboutthe actual system itself, including all source code, objects, screens,configurations, database, etc. This system would allow for: (1) changecontrol analysis; (2) configuration comparisons with community; (3) allperformance metrics above sliced by any changes to system; and (4)system delta(s) from delivered “gold code.”

FIG. 2 shows execution of a method 200 for testing web applications,according to an exemplary embodiment. The exemplary method 200 shown inFIG. 2 comprises execution steps 202, 204, 206, and 208. However, itshould be appreciated that other embodiments may comprise additional oralternative execution steps, or may omit one or more steps altogether.It should also be appreciated that other embodiments may perform certainexecution steps in a different order; steps may also be performedsimultaneously or near-simultaneously with one another. In addition, theexemplary method 200 of FIG. 2 is described as being executed by asingle server computer. However, one having skill in the art willappreciate that, in some embodiments, steps may be executed by anynumber of computing devices operating in a distributed computingenvironment. In some cases, a computer executing one or more steps maybe programmed to execute various other, unrelated features, where suchcomputer does not need to be operating strictly as the security serverdescribed herein.

In step 202, a server may receive over a communication network from aclient computer system, transmittance of datasets comprising at leastfield level data as well as metadata of a plurality of softwareoperations of a first application (for example, payroll web applicationversion one) in an enterprise resource planning system being operated bythe client computer system. Each of the software operations may belinked to at least one dataset permitting the server to categorize datarelating to each software operation to one of a plurality of categories.

In some implementations, the datasets of the plurality of softwareoperations may further include personal identifying information ofemployees of a company operating the client computing system. In someimplementations, the datasets of the plurality of software operationsmay further include personal identifying information of employees of thecompany operating the client computing system and also the detailscorresponding to actions relating to each software operation performedby the employees of the company operating the client computing system.In some implementations, the datasets of the plurality of softwareoperations of the first application in the enterprise resource planningsystem being operated by the client computer system comprises the fieldlevel data generated by one or more enterprise resource planning systemservers of the client computer system.

In step 204, a server may generate a test script using the datasets fora second application (for example, a new version or release of a payrollweb application or an entirely new application) to be tested. The servermay generate the test script for testing the second application byselecting one or more data fields from a plurality of data fields in thedatasets corresponding to the first application in the enterpriseresource planning system. Upon selecting the one or more data fields,the server may retrieve values corresponding to each of the one or moredata fields. The server may then use the one or more data fields andtheir corresponding values in order to generate the test script fortesting the second application.

In some embodiments, the server may generate the test script for testingthe second application by selecting the one or more data fields in thedatasets corresponding to the first application for a definedtime-period. In some embodiments, the server may generate the testscript for testing the second application by selecting the one or moredata fields in the datasets corresponding to the first application for aspecific environment in the defined time-period. For example, anapplication may operate in multiple countries and each of the countrymay represent a different environment of operation for the application.In some embodiments, upon the generation of the test script, the serverdefine one or more instructions in the test script. The server thenloads the one or more instructions into a computer-readable memory. Theserver may also download the test script to a volatile memory of adatabase.

The server may generate the test script for a variety of purposes. Forexample, a generated test script may be used by the server within asoftware testing environment (e.g., supported by a software test server)to perform functional testing on a client computing system using thetest script and/or to perform regression testing on the client computingsystem using the test script. The test script may include sectionsassociated with various different test cases using the metadatacorresponding to the first application to be performed on the clientcomputing system.

In step 206, a server execute the test script to test the secondapplication according to the instructions defined in the test script.During the execution of the test script, the server may generate arequest, and transmit the request to a database to retrieve theplurality of software operations of the first application during thedefined time-period for the one or more selected data fields. Thedatabase on receiving the request from the server may retrieve theplurality of software operations of the first application during thedefined time-period for the one or more selected data fields, and latertransmit the plurality of software operations of the first applicationduring the defined time-period for the one or more selected data fieldsto the server. The server upon receiving the plurality of softwareoperations of the first application during the defined time-period forthe one or more selected data fields from the database perform theplurality of software operations of the first application during thedefined time-period for the one or more selected data fields.

In some embodiments, during the execution of the test script, the servermay generate a transactional request using information and/or dataassociated to the test script. The transactional request may includerecreating one or more requests of employees of the client computersystem based on the selected one or more data fields in the metadatacorresponding to the first application for the specific environment inthe defined time-period. Upon the generation of the transactionalrequest, the server perform a functional test of the second applicationby executing the transactional request.

In some embodiments, the server is also capable of utilizing JMeter (astress testing tool) to simulate client computer system employee stresson the second application of the client computer to be tested byincreasing number of transactional requests within a certain timeperiod, and then perform a functional test by the server of the secondapplication by executing the total number of the transactional requests.

In step 208, a server transmit a second transmission over acommunication network to a client computer system. The secondtransmission may include information for display of test performance ofthe plurality of the software operations of the second application basedon the datasets corresponding to the first application in the enterpriseresource planning system. Users of the client computer system may thenview the test performance results of the plurality of the softwareoperations of the second application on a graphical user interface (GUI)of the client computer system, and modify one or more softwareoperations for subsequent operation of the second application based onthe test results. Users of the client computer system may also comparethe test performance results of the plurality of the software operationsof the second application with results from previous test runs, andmodify one or more software operations for subsequent operation of thesecond application based on the comparison results.

FIG. 3 shows a graphical user interface 300 showing a dashboard of ahost entity according to an exemplary embodiment. Each of the panels302, 304, 306, and 308 can be rearranged to a different position on thegraphical user interface, and the panels 302, 304, 306, and 308 can beadded or removed as desired. Each panel presents information about anaspect of the enterprise system that can be selected by a user togenerate a test script in order to perform a test of applications and/orsoftware operations of the client companies using the test script. Forexample, a user will select a product line 302, an environment 304, anddate range 306 for generation of a test script. Upon the selection ofthe product line 302, the environment 304, and the date range 306, theuser will then click on “get token” panel 308. The token results 310 maybe presented to the user on the graphical user interface 300 uponselecting the “get token” panel 308, as shown in FIG. 3. The tokenresults 310 are then used to generate a test script that includes thetransactions information for a data set of a selected product linewithin the selected date range. For example, the token results 310 mayinclude a list of forms for benefit module (BN), human resources module(HR), personnel actions module (PA), payroll module (PR), and so on thatthe employees have accessed within the selected data set in the selecteddate range. The test scrip is then downloaded by an administrator of ahost system on administrator workstation using a download panel 402 asdisplayed on a graphical user interface 400 shown in FIG. 4. Theadministrator of a host system may then trigger a test server to performthe test using the test script. The test results 502 are then displayedon a graphical user interface 500 as shown in FIG. 5.

An exemplary method for utilizing the community information is asfollows. A client computer system performs transactions and/or softwareoperations (e.g., actions) in an enterprise system hosted by a hostentity, such as in a cloud environment. The host entity stores datasetscomprising field level data and metadata (e.g., response time, delay,processing time, usage) about the transactions and/or softwareoperations in a database for the client computer system's actions andthe actions of other client companies. The host entity uses the storeddatasets to automatically generate test scripts and test softwareoperations of the client companies using the test script. The results ofthe test are then presented to the client computer system regarding theperformance of the software operations of the client computer system.The host entity may present a webpage to the client computer system thatshows the client computer system software operations' performance basedon the particular dataset.

In some embodiments, transactional datasets may be used to providecomparative analysis of system and user efficiency. Furthermore, bygathering datasets about the community's systems themselves (e.g.,versions, patches), it is possible to provide additional comparativeanalysis for system and user performance across different versions.Further, by adding additional datasets about system changes and systemevents (i.e., monitors), additional comparative analysis can beprovided. Examples of how a host entity can use datasets to compare theclient company with others in the community include, but are not limitedto, an ability to: (1) analyze on-line transactional usage forpatterns/comparisons by system/transaction/function; (2) analyze batchsystem usage for patterns/comparisons by system/transaction/function;(3) analyze system performance metrics for patterns/comparisons bysystem/transaction/function; (4) analyze system level(version/upgrade/cyclical/patch) for patterns/comparisons bysystem/transaction/function; (5) analyze ad-hoc query usage/efficiency(and impact on overall system performance); (6) analyze user logins forpatterns/comparisons by system/transaction/function; (7) analyze usersession duration/habits for patterns/comparisons bysystem/transaction/function; (8) analyze user efficiencies forpatterns/comparisons by system/transaction/function; (9) identifyanomalous user behavior (i.e., users logging in from home @ 2:30 am);and (10) identify anomalous transaction and/or software operationbehavior (i.e., daemon process that updates Accounts Payable Vendorterms before scheduled check runs and changes back after check run).

Non-limiting examples of types of presenting comparative performanceinformation are further described in FIGS. 6-12 below. Referring to FIG.6, a graphical user interface 600 showing a dashboard according to anexemplary embodiment. Each of the panels 602 can be rearranged to adifferent position on the graphical user interface, and the panels 602can be added or removed as desired. By activating a button in the upperleft corner, the user can expose additional options or panels. Eachpanel can present information about an aspect of the enterprise systemto the client company. For example, one panel is entitled “Transactions”and includes community information. The transactions panel 604 shows theslowest running transactions and/or software operations in the lastthree days, which may be the transactions and/or software operationsthat require the most attention. Some enterprise systems may be runningthousands of applications at a time, so it is useful to see which typesof transactions and/or software operations take the most amount of timeto complete.

Referring to FIG. 7, a graphical user interface 700 showing a heat mapof usage is shown for the enterprise system. This heat map may begenerated by clicking on a link for “Transaction Analysis” in a panel ona dashboard. The heat map shows usage by transaction and/or softwareoperation count and response time. The left axis 702 represents a timeof day, the top axis 704 represents a time of month, the right axisrepresents total hours, and the bottom axis represents total days. Thenumber on the heat map represents a number of transactions and/orsoftware operations. In this exemplary embodiment, the filter is HR butnot HR11.1, referring to an Infor Lawson® human resources application.Although the exemplary embodiments may recite the use of an Oracle orInfor Lawson enterprise system, it is intended that any enterprisesystem may be used with the methods and systems described herein. Asshown in this exemplary heat map, the 16th, 17th, and 30th days of themonth are the most busy, and those days happen to coincide with payrolltime. It may be useful for the client company to see how other similarbusinesses are performing during these periods, e.g., whether the numberof transactions and/or software operations has been spread out or movedto a different part of the month.

Referring to FIG. 8, a graphical user interface 800 for comparingcommunity information is shown according to an exemplary embodiment.This graphical user interface may be presented to the user uponselecting the “Transactions” panel, as shown in FIG. 6. As shown in thefirst row 802, the name AP230 refers to a particular application. Eachrow listed under “Community Size” includes a version number and a patchlevel, along with a corresponding volume. In some instances, differentdepartments within a client company may use different versions or patchlevels of the same application. In this example, the client company canobserve that it is running the application 24.29 times slower thanothers using the same version. In another example, for GL291, there arefive different versions running in the community, and version 174 isfaster than version 153. This client company is running the applicationwith an average response time of 4.03 seconds, which is slower than theslowest version of the application. So the client company may haveinefficiencies in this version and may consider upgrading to a differentversion. This community comparison can provide data that allows theclient company to evaluate their efficiencies and delays.

Referring to FIG. 9, a graphical user interface 900 for displayingperformance over time is shown according to an exemplary embodiment. Thechart shows response time of transactions and/or software operations,drills, and queries over time. If a modification or change was made tothe system, this chart can show how the modification or change affectedperformance. A filter (e.g., limiting to a certain application) can beused to see which jobs were running. “Drills” can represent a feature ofan application where a user drills down into the data to see moreinformation about the a transaction and/or software operation. “Queries”can represent a number of queries by users, some of whom may writeimproper queries that overwhelm the system. In this example, point “A”represents a time when the client company requested to recycle LawsonBusiness Intelligence (LBI). Point A is shown on the chart to see howperformance was affected.

Referring to FIG. 10, a graphical user interface 1000 displaying openrequests is shown according to an exemplary embodiment. By selecting apanel for “Incidents & Requests,” as shown in FIG. 3, a user can view alist of open incidents, open requests, and incidents and requests closedwithin the last 30 days.

Referring to FIG. 11, a graphical user interface 1100 for displayingoutages is shown according to an exemplary embodiment. In this exemplaryembodiment, the number of outages is shown since the installment of thesystem along with the duration of the outage. In some embodiments, theremay also be a description as to the cause of an outage.

Referring to FIG. 12, a graphical user interface 1200 displaying one ormore product lines for a client company is shown according to anexemplary embodiment. The graphical user interface may displayinformation regarding development, testing, production, or training.This graphical user interface can give information to client companyabout the status of the system being hosted by the host entity.

The functionality described herein can be implemented by numerousmodules or components that can perform one or multiple functions. Eachmodule or component can be executed by a computer, such as a server,having a non-transitory computer-readable medium and processor. In onealternative, multiple computers may be necessary to implement thefunctionality of one module or component.

Unless specifically stated otherwise as apparent from the followingdiscussion, it is appreciated that throughout the description,discussions utilizing terms such as “processing” or “computing” or“calculating” or “determining” or “measuring” or “selecting” or“displaying” or “identifying” or “detecting” or the like, can refer tothe action and processes of a data processing system, or similarelectronic device, that manipulates and transforms data represented asphysical (electronic) quantities within the system's registers andmemories into other data similarly represented as physical quantitieswithin the system's memories or registers or other such informationstorage, transmission or display devices.

The exemplary embodiments can relate to an apparatus for performing oneor more of the functions described herein. This apparatus may bespecially constructed for the required purposes, or it may comprise ageneral purpose computer selectively activated or reconfigured by acomputer program stored in the computer. Such a computer program may bestored in a machine (e.g. computer) readable storage medium, such as,but is not limited to, any type of disk including floppy disks, opticaldisks, CD-ROMs and magnetic-optical disks, read only memories (ROMs),random access memories (RAMs) erasable programmable ROMs (EPROMs),electrically erasable programmable ROMs (EEPROMs), magnetic or opticalcards, or any type of media suitable for storing electronicinstructions, and each coupled to a bus.

The exemplary embodiments described herein are described as softwareexecuted on at least one server, though it is understood thatembodiments can be configured in other ways and retain functionality.The embodiments can be implemented on known devices such as a personalcomputer, a special purpose computer, cellular telephone, personaldigital assistant (“PDA”), a digital camera, a digital tablet, anelectronic gaming system, a programmed microprocessor or microcontrollerand peripheral integrated circuit element(s), and ASIC or otherintegrated circuit, a digital signal processor, a hard-wired electronicor logic circuit such as a discrete element circuit, a programmablelogic device such as a PLD, PLA, FPGA, PAL, or the like. In general, anydevice capable of implementing the processes described herein can beused to implement the systems and techniques according to thisinvention.

It is to be appreciated that the various components of the technologycan be located at distant portions of a distributed network and/or theInternet, or within a dedicated secure, unsecured and/or encryptedsystem. Thus, it should be appreciated that the components of the systemcan be combined into one or more devices or co-located on a particularnode of a distributed network, such as a telecommunications network. Aswill be appreciated from the description, and for reasons ofcomputational efficiency, the components of the system can be arrangedat any location within a distributed network without affecting theoperation of the system. Moreover, the components could be embedded in adedicated machine.

Furthermore, it should be appreciated that the various links connectingthe elements can be wired or wireless links, or any combination thereof,or any other known or later developed element(s) that is capable ofsupplying and/or communicating data to and from the connected elements.The term module as used herein can refer to any known or later developedhardware, software, firmware, or combination thereof that is capable ofperforming the functionality associated with that element. The termsdetermine, calculate and compute, and variations thereof, as used hereinare used interchangeably and include any type of methodology, process,mathematical operation or technique.

The embodiments described above are intended to be exemplary. Oneskilled in the art recognizes that there are numerous alternativecomponents and embodiments that may be substituted for or included inthe particular examples described herein and such additions orsubstitutions still fall within the scope of the invention.

What is claimed is:
 1. A system comprising: a host entity containing aserver programmed to: receive a dataset from outside the host entity,wherein the dataset is (a) formed based on an interaction of a user witha first application in an enterprise resource planning (ERP) system and(b) corresponds to a transaction caused via the first application withinthe ERP system, wherein the dataset includes a data field; categorizethe dataset to a category; generate a script programmed to test a secondapplication via the data field for a time period; perform an executionof the script such that the second application is tested based on thescript, wherein the execution includes retrieving the transactioncorresponding to the category during the time period for the data fieldand performing the transaction during the time period for the data fieldwithin the second application.
 2. The system of claim 1, wherein thehost entity contains a first server and a second server, wherein theserver is the first server and the second server, wherein the firstserver is programmed to receive the dataset from outside the host entityand categorize the dataset to the category, wherein the second server isprogrammed to generate the script programmed to test the secondapplication via the data field for the time period or perform theexecution of the script.
 3. The system of claim 2, wherein the secondserver is programmed to generate the script programmed to test thesecond application via the data field for the time period.
 4. The systemof claim 2, wherein the second server is programmed to perform theexecution of the script.
 5. The system of claim 2, wherein the secondserver is a third server and a fourth server, wherein the third serveris programmed to generate the script programmed to test the secondapplication via the data field for the time period, wherein the fourthserver is programmed to perform the execution of the script.
 6. Thesystem of claim 1, wherein the server is programmed to serve a contentto a client entity external to the host entity such that the cliententity displays the content after the execution, wherein the content isinformative of a test performance of the transaction of the secondapplication based on the dataset.
 7. The system of claim 1, wherein thedataset contains a set of metadata selected from a group consisting of aresponse time, a delay time, a processing time, and a usage when theserver receives the dataset.
 8. The system of claim 1, wherein the hostentity contains a database, wherein the server relationally stores thedataset and the category before the execution.
 9. The system of claim 1,wherein the dataset contains a set of field level data when the serverreceives the dataset, wherein the set of field level data furthercomprises a set of personal identifying information when the serverreceives the dataset.
 10. The system of claim 1, wherein the server isprogrammed to select a field value of the data field based on a ruleduring the execution.
 11. The system of claim 10, wherein the rule isdefined based on a definition of a form within the dataset when theserver receives the dataset.
 12. The system of claim 1, wherein thescript is programmed to automate a test case generated by reconstructingthe dataset by calling a subroutine exported by a test automationframework or an application programming interface (API) exported by atest automation framework.
 13. The system of claim 1, wherein the secondapplication is a web application during the execution.
 14. The system ofclaim 13, wherein the first application is a web application when thedataset is received.
 15. A method comprising: causing, by a processor, ahost entity to contain a server; and causing, by the processor, theserver to: receive a dataset from outside the host entity, wherein thedataset is (a) formed based on an interaction of a user with a firstapplication in an enterprise resource planning (ERP) system and (b)corresponds to a transaction caused via the first application within theERP system, wherein the dataset includes a data field; categorize thedataset to a category; generate a script programmed to test a secondapplication via the data field for a time period; and perform anexecution of the script such that the second application is tested basedon the script, wherein the execution includes retrieving the transactioncorresponding to the category during the time period for the data fieldand performing the transaction during the time period for the data fieldwithin the second application.